package com.yyf.blogapi.service.impl;

import com.yyf.blogapi.po.Article;
import com.yyf.blogapi.po.Tag;
import com.yyf.blogapi.mapper.TagMapper;
import com.yyf.blogapi.service.ITagService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yyf.blogapi.vo.ArticleVo;
import com.yyf.blogapi.vo.TagVo;
import org.joda.time.DateTime;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author yyf
 * @since 2021-08-16
 */
@Service
public class TagServiceImpl extends ServiceImpl<TagMapper, Tag> implements ITagService {

    @Resource
    TagMapper tagMapper;
    @Override
    public List<TagVo> getTagsByArticleId(Long articleId) {
        List<Tag> tags = tagMapper.getTagsByArticleId(articleId);
        return copyList(tags);
    }

    @Override
    public List<Tag> hotTags(int limit) {
        return tagMapper.hotTags(limit);
    }

    public List<TagVo> copyList(List<Tag> records) {
        ArrayList<TagVo> listTagVo = new ArrayList<>();
        for (Tag record : records) {
            listTagVo.add(copy(record));
        }
        return listTagVo;
    }

    private TagVo copy(Tag tag) {
        TagVo tagVo = new TagVo();
        BeanUtils.copyProperties(tag, tagVo);
        return tagVo;
    }
}
